package cm.cool.web.util.tokencache;

import cm.cool.web.util.date.TimeUtil;
import cm.cool.web.util.respon.R;

public class TokenUtil {
	
	
	/**
	 * 解析Token和验证token
	 */
	public static boolean  checkToken(String tokenValue,String outTime){
		
		//数据校验
		if(R.isNull(tokenValue))
			return false;
		
		//超时时间
		long outTimeS=1800;
		
		//
		long dqTime=TimeUtil.getSecond();
		
		//强转时间
		try {
			outTimeS=Long.parseLong(outTime);
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
		
		String[] tokens=tokenValue.split("_");
		
		try {
			
			//判断是否超时
			if(tokens.length==4){
				Long tokeTime=Long.parseLong(tokens[3]);
				if(dqTime-tokeTime>outTimeS){
					return false;
				}
				
			}else{
				return false;
			}
			
			
			//从内存中拿到当前对应的token
			String resultToken=TokenCacheMap.getTokenList(tokens[0]);
			//判断Token是否正确
			if(R.isNull(resultToken) || !resultToken.equals(tokenValue))
				return false;
			
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		
		return true;
	}
	
	
	/**
	 * 解析Token和验证token
	 */
	public static String  getAdminId(String tokenValue){
		
		//数据校验
		if(R.isNull(tokenValue))
			return null;
		
		//超时时间
		long outTimeS=1800;
		
		//
		
		
		String[] tokens=tokenValue.split("_");
		
		try {
			
			//判断是否超时
			if(tokens.length==4){
				return 	tokens[0];			
			}else{
				return null;
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}

}
